package com.leosam.tvbox.mv.proxy;

import java.io.File;

public abstract class DownloadRunnable implements Runnable {
    /**
     * 媒体名
     */
    private final String mediaName;

    /**
     * 当前文件名,返回时将拼接媒体名
     */
    private final String indexName;

    /**
     * 本任务下载完成后,优先开始下载的文件名,为null表示没有需要优先下载的
     */
    private final String nextIndexName;

    /**
     * 媒体名
     * 
     * @return 返回媒体名
     */
    public String getMediaName() {
        return mediaName;
    }

    /**
     * 序号名
     * 
     * @return 返回序号名
     */
    public String getIndexName() {
        return indexName;
    }

    /**
     * 下一个序号名
     * 
     * @return 返回下一个序号名
     */
    public String getNextIndexName() {
        return nextIndexName;
    }

    /**
     * 当前下载任务的目标文件名
     * 
     * @return 目标文件名
     */
    public abstract File getFile();

    protected DownloadRunnable(String mediaName, String indexName, String nextIndexName) {
        this.mediaName = mediaName;
        this.indexName = mediaName + "/" + indexName;
        if (nextIndexName != null) {
            this.nextIndexName = mediaName + "/" + nextIndexName;
        } else {
            this.nextIndexName = null;
        }
    }

    @Override
    public String toString() {
        return indexName;
    }
}
